package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseBaseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

import java.util.List;

@Api(value="课程基本信息管理 API",tags="课程基本信息管理 tags",description = "课程基本信息管理 desc")
public interface CourseBaseApi {

    @ApiOperation("查询全部课程信息")
    List queryAll();

    @ApiOperation("查询基本课程列表")
    PageVO queryCourseBaseList(PageRequestParams params, QueryCourseBaseModel model);

    @ApiOperation("添加基本课程信息")
    @ApiImplicitParam(name="courseBaseVO",value="课程基本视图信息",required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO createCourseBase(CourseBaseVO courseBaseVO);

    @ApiOperation("根据id获取课程基本信息")
    @ApiImplicitParam(name="courseBaseId",value="课程id",required = true,dataType = "Long",paramType = "path")
    CourseBaseDTO getCourseBaseById(Long courseBaseId);

    @ApiOperation("更新课程基本信息")
    @ApiImplicitParam(name="courseBaseVO",value="课程基本视图",required = true,dataType = "CourseBaseVO",paramType = "body")
    CourseBaseDTO modifyCourseBase(CourseBaseVO courseBaseVO);

    @ApiOperation("删除课程基本信息")
    @ApiImplicitParam(name="courseBaseId",value="课程id",required = true,dataType = "Long",paramType = "path")
    Boolean deleteCourseBaseById(Long courseBaseId);
}
